package com.wash.shoes.service;

import java.util.List;

import javax.validation.Valid;

import org.springframework.web.bind.annotation.RequestBody;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wash.shoes.entity.ShopPo;
import com.wash.shoes.entity.UserShopPo;
import com.wash.shoes.request.BindUserShopRequest;
import com.wash.shoes.request.GetUnbindDataRequest;
import com.wash.shoes.resp.BindRecordResp;

/**
 * <p>
 * 用户关联的店铺 服务类
 * </p>
 *
 * @author ljg
 * @since 2024-10-11
 */
public interface UserShopService extends IService<UserShopPo> {

    /**
     * 获取未绑定/已绑定的列表
     *
     * @param getUnbindDataRequest 请求参数
     * @return
     */
    /*List<BindRecordResp>*/IPage<BindRecordResp> getUnBindList(GetUnbindDataRequest getUnbindDataRequest);

    /**
     * @author lijianguo
     * @Date 11/10/2024 店铺列表
     **/
    Page<ShopPo> noConnectionShopList(String shopName, String userId, String type);

    /**
     * @author lijianguo
     * @Date 13/10/2024 用户的门店
     **/
    Page<ShopPo> userShopList(String userId);

    /**
     * 用户的Id
     */
    List<ShopPo> userAllShopList(String userId);

    /**
     * 批量绑定用户和门店关系
     * 
     * @param bindUserShopRequest 绑定请求对象
     * @return
     */
    boolean batchBindUserShop(@RequestBody @Valid BindUserShopRequest bindUserShopRequest);

    /**
     * @author lijianguo
     * @Date 13/10/2024 用户关联门店
     **/
    UserShopPo userAssociateShopData(String userId, String shopId);
}
